1. Field of the Invention
The present invention is generally related to communication networks. More particularly, the present invention is related to systems and methods for classifying data packets in a communication network.
2. Background Art
In conventional cable modem systems, a hybrid fiber-coaxial (HFC) network provides a point-to-multipoint topology for supporting data communication between a cable modem termination system (CMTS) at the cable headend and multiple cable modems (CM) at the customer premises. In such systems, information is broadcast downstream from the CMTS to the cable modems as a continuous transmitted signal in accordance with a time division multiplexing (TDM) technique. The upstream transmission of data from the cable modems is managed by the CMTS, which allots to each cable modem specific slots of time within which to transfer data.
Conventional cable modem systems afford considerably less bandwidth on the HFC plant than on the packet switched networks to which they are connected. This lack of bandwidth is further exacerbated by the fact that the HFC channels must be shared by multiple cable modems. As a result, the conservation of HFC bandwidth is imperative in order to maintain overall system performance. This is particularly true where cable modem users are engaging in activities that require both substantial upstream and downstream bandwidth, such as IP telephony, video teleconferencing and Internet gaming.
Conventional cable modem systems utilize DOCSIS-compliant equipment and protocols to carry out the transfer of data packets between multiple cable modems and a CMTS. The term DOCSIS (Data Over Cable System Interface Specification) generally refers to a group of specifications published by CableLabs that define industry standards for cable headend and cable modem equipment. In part, DOCSIS sets forth requirements and objectives for various aspects of cable modem systems including operations support systems, management, data interfaces, as well as network layer, data link layer, and physical layer transport for data over cable systems. The most current version of the DOCSIS specification is DOCSIS 1.1.
Data packets destined for a cable modem system may enter the cable modem system via the CMTS. The CMTS may serve as an interface between the HFC network and a packet-switched network, for example. Thus, the CMTS transfers IP data packets received from cable modems to the packet-switched network or back downstream to another cable modem. Conversely, the CMTS transfers IP data packets received from the packet-switched network to the cable modems on the cable modem system when appropriate.
Cable modem systems typically employ a classification process to classify a target data packet entering the system. The classification process utilizes sets of matching criteria known as classifiers to classify a target data packet. A classifier is applied to each target data packet entering the cable network. As in many networking systems, a cable modem system uses a variety of classification encodings to encode parameters for classifying and scheduling of a target data packet entering the system. For example, in classifying a target data packet entering a cable modem system, a parameter for testing whether the target data packet is of an Internet Protocol (IP) type can be established by defining the parameter to be encoded in a specified format (e.g., type/length/value format).
The principal mechanism for utilizing the classification encodings is to classify packets in the cable modem system into Service Flows. Service Flows are unidirectional flows of packets that are assigned a particular set of classification criteria (i.e., classification parameters). Thus, each Service Flow has a defined set of classification criteria. Service Flows exist in both the upstream and downstream direction. At a minimum, a cable modem must define at least two service flows, one for the upstream direction, and one for the downstream direction. In such a configuration, the upstream Service Flow can describe a default service flow for upstream data traffic which does not necessarily meet any standard defined by the classification criteria set for the service flow. The downstream Service Flow can describe a default service flow for downstream data traffic which does not necessarily meet any standard. The CM and CMTS shape, police, and prioritize data traffic in the cable modem system according to the classification criteria set associated with a particular Service Flow. Thus, each data packet is “matched” to a service flow having the set of classification criteria that are appropriate for the data packet.
The classifier is applied to each incoming data packet (that is, a data packet entering the cable modem system) to determine if the data packet is in compliance with the classification criteria of the classifier. If the data packet complies with the classifier, it is transmitted on the Service Flow associated with that classifier. For example, one member of the classifier can be a classification criteria for a particular destination address. For a data packet to be transmitted on that identified service flow, the data packet must comply with the matching criteria specifying this destination address requirement. If the data packet does not comply with this specification of the matching criteria, it will be transmitted on a default Service Flow.
To determine if the data packet complies with a particular classification criteria in the classifier, a pre-defined field of the data packet (that is, the field of the data packet that is being matched against the requirement specified by the classification criteria) is located before the classification criteria is matched to the pre-defined field of the target data packet. After the pre-defined field is located and the particular classification criteria is matched to the pre-defined field, a second classification criteria can then be applied to a pre-defined field in the data packet. The second classification criteria can access the same or a different pre-defined field of the data packet as the first classification criteria.
Heretofore, the location of a pre-defined field(s) in the data packet had to be determined each time the pre-defined field was accessed for classification purposes, regardless of whether it had been previously located (address offsets of the pre-defined fields in the target data packet are not always at fixed locations). This resulted in a problem of the classification process failing to obtain an optimal execution speed. Thus, the classification process was not as efficient as it could be.
Heretofore, this problem was further exacerbated by serial application of the classification criteria to the pre-defined fields of the data packet. For example, a first matching criteria in the classifier was applied, followed by a second, followed by a third, and so forth, for example. To avoid re-calculating locations of the fields in the target data packet for each of the multiple classifiers, the classification criteria were sometimes re-ordered according to which of the pre-defined fields of the target data packet they needed to access before they were applied to the target data packet. The time devoted to reordering the classification criteria prevented the classification process from obtaining an optimal execution speed.
Accordingly, what is desired is a system and method for classifying a data packet entering a cable modem network offering the following advantages:                (1) eliminating the need to re-locate a pre-defined field of the data packet after it has been previously located;        (2) allowing serial application of the matching criteria to the pre-defined fields of the data packet while providing optimal execution speed of the classification process; and        (3) allowing parallel application of the matching criteria to the pre-defined fields of the data packet while providing optimal execution speed of the classification process.        
For example, with regard to application of the matching criteria, the desired system and method should be capable of applying the matching criteria in such a manner as to prevent the application of matching criteria to the data packet if the matching criteria does not relate to the particular type of data packet. Further, the desired system and method should be capable of applying the matching criteria in any order or in a simultaneous manner.